// RAP [bm]: animations ///******************************************************************************* // * Copyright (c) 2006, 2007 IBM Corporation and others. // * All rights reserved. This program and the accompanying materials // * are made available under the terms of the Eclipse Public License v1.0 // * which accompanies this distribution, and is available at // * http://www.eclipse.org/legal/epl-v10.html // * // * Contributors: // * IBM Corporation - initial API and implementation // *******************************************************************************/ // //package org.eclipse.ui.internal; // //import java.util.ArrayList; //import java.util.Iterator; //import java.util.List; // //import org.eclipse.jface.util.Geometry; //import org.eclipse.swt.SWT; //import org.eclipse.swt.graphics.Color; //import org.eclipse.swt.graphics.Rectangle; //import org.eclipse.swt.graphics.Region; //import org.eclipse.swt.widgets.Display; //import org.eclipse.swt.widgets.Shell; // ///** // * @since 3.3 // * // */ //public class DefaultAnimationFeedback { // private static final int LINE_WIDTH = 1; // // private Display display; // private Shell theShell; // private Region shellRegion; // // private List startRects = new ArrayList(); // private List endRects = new ArrayList(); // // public DefaultAnimationFeedback() {} // // /** // * @param parentShell // */ // public void initialize(Shell parentShell, Rectangle startRect, Rectangle endRect) { // addStartRect(startRect); // addEndRect(endRect); // // theShell = new Shell(parentShell, SWT.NO_TRIM | SWT.ON_TOP); // display = theShell.getDisplay(); // Color color = display.getSystemColor(SWT.COLOR_WIDGET_FOREGROUND); // theShell.setBackground(color); // // // Ensure that the background won't show on the initial display // shellRegion = new Region(display); // theShell.setRegion(shellRegion); // } // // public void addStartRect(Rectangle rect) { // if (rect != null) { // startRects.add(rect); // } // } // // public void addEndRect(Rectangle rect) { // if (rect != null) { // endRects.add(rect); // } // } // // public List getStartRects() { // return startRects; // } // // public List getEndRects() { // return endRects; // } // // public void renderStep(double amount) { // if (shellRegion != null) { // shellRegion.dispose(); // shellRegion = new Region(display); // } // // // Iterate across the set of start/end rects // Iterator startIter = startRects.iterator(); // Iterator endIter = endRects.iterator(); // while (startIter.hasNext()) { // Rectangle start = (Rectangle) startIter.next(); // Rectangle end = (Rectangle) endIter.next(); // // // Get the bounds of the interpolated rect // Rectangle curRect = RectangleAnimation.interpolate(start, end, amount); // // Rectangle rect = Geometry.toControl(theShell, curRect); // shellRegion.add(rect); // rect.x += LINE_WIDTH; // rect.y += LINE_WIDTH; // rect.width = Math.max(0, rect.width - 2 * LINE_WIDTH); // rect.height = Math.max(0, rect.height - 2 * LINE_WIDTH); // // shellRegion.subtract(rect); // } // // theShell.setRegion(shellRegion); // // display.update(); // } // // /** // * // */ // public void dispose() { // theShell.setVisible(false); // theShell.dispose(); // shellRegion.dispose(); // } // // /** // * Perform any initialization you want to have happen -before- the // * amination starts // */ // public void jobInit() { // // Compute the shell's bounds // Rectangle shellBounds = Geometry.copy((Rectangle) startRects.get(0)); // Iterator startIter = startRects.iterator(); // Iterator endIter = endRects.iterator(); // while (startIter.hasNext()) { // shellBounds.add((Rectangle) startIter.next()); // shellBounds.add((Rectangle) endIter.next()); // } // theShell.setBounds(shellBounds); // // // Making the shell visible will be slow on old video cards, so only start // // the timer once it is visible. // theShell.setVisible(true); // } //}